- Let’s investigate some of the per game statistics of NBA teams during the 2021-2022 season!
Off/Def Rebounds XY Plot
df %>%
ggplot(aes(x = orb, y = drb)) +
geom_point(size = 3) +
geom_vline(aes(xintercept = mean(orb)),
linetype = "dashed",
size = 1.2) +
geom_hline(aes(yintercept = mean(drb)),
linetype = "dashed",
size = 1.2) +
ggrepel::geom_text_repel(aes(label = team))
Team 3-Point Scoring
three_pt <- df %>%
mutate(
three_z = z_score(x3p_percent),
three_pt_pct = scales::percent(x3p_percent, accuracy = 0.1)
) %>%
ggplot(
aes(
x = three_z,
y = reorder(team, three_z),
label = three_pt_pct
)
) +
geom_col(width = 0.2) +
geom_point(
aes(
size = x3pa
),
color = "green") +
geom_vline(
xintercept = 0,
size = 1.2) +
scale_x_continuous(
breaks = seq(-3, 3, 1),
labels = seq(20, 80, 10)
) +
theme(
legend.position = "none"
) +
labs(
x = "Three Point% t-score",
y = NULL,
title = "2021-2022 Three Point%",
subtitle = "Dot Size = 3 Point Attempts"
)
ggplotly(three_pt)
LS0tDQp0aXRsZTogIk5CQSINCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCINCm91dHB1dDoNCiAgcm1hcmtkb3duOjpodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIHRvY19kZXB0aDogMg0KICAgIHRvY19mbG9hdDoNCiAgICAgIHNtb290aF9zY3JvbGw6IHRydWUNCiAgICAgIGNvbGxhcHNlZDogZmFsc2UNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQotLS0NCg0KKiBMZXQncyBpbnZlc3RpZ2F0ZSBzb21lIG9mIHRoZSBwZXIgZ2FtZSBzdGF0aXN0aWNzIG9mIE5CQSB0ZWFtcyBkdXJpbmcgdGhlIDIwMjEtMjAyMiBzZWFzb24hDQoNCmBgYHtyIHNldHVwLCBlY2hvID0gRkFMU0UsIGluY2x1ZGUgPSBGQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KDQpzdXBwcmVzc1BhY2thZ2VTdGFydHVwTWVzc2FnZXMoew0KICBzdXBwcmVzc1dhcm5pbmdzKHsNCiAgICBsaWJyYXJ5KHRpZHl2ZXJzZSkNCiAgICBsaWJyYXJ5KHJ2ZXN0KQ0KICAgIGxpYnJhcnkocGxvdGx5KQ0KICB9KQ0KfSkNCg0KdGhlbWVfc2V0KHRoZW1lX2xpZ2h0KCkpDQoNCiMjIGZ1bmN0aW9ucw0KDQp6X3Njb3JlIDwtIGZ1bmN0aW9uKHgpew0KICB6ID0gKHggLSBtZWFuKHgsIG5hLnJtID0gVFJVRSkpIC8gc2QoeCwgbmEucm0gPSBUUlVFKQ0KICByZXR1cm4oeikNCn0NCg0KIyMgR2V0IE5CQSBwZXIgZ2FtZSBkYXRhDQpkZiA8LSByZWFkX2h0bWwoImh0dHBzOi8vd3d3LmJhc2tldGJhbGwtcmVmZXJlbmNlLmNvbS9sZWFndWVzL05CQV8yMDIyLmh0bWwiKSAlPiUgDQogIGh0bWxfdGFibGUoZmlsbCA9IFQpICU+JQ0KICAuW1s2XV0gJT4lDQogIHRpYmJsZSgpICU+JQ0KICBzZWxlY3QoLVJrKSAlPiUNCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKSAlPiUNCiAgZmlsdGVyKHRlYW0gIT0gIkxlYWd1ZSBBdmVyYWdlIikNCg0KYGBgDQoNCg0KIyMgT2ZmL0RlZiBSZWJvdW5kcyBYWSBQbG90DQoNCmBgYHtyIGZpZy5jYXAgPSAiT2ZmZW5zaXZlIGFuZCBEZWZlbnNpdmUgUmVib3VuZHMgZm9yIGVhY2ggVGVhbSJ9DQpkZiAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gb3JiLCB5ID0gZHJiKSkgKw0KICBnZW9tX3BvaW50KHNpemUgPSAzKSArDQogIGdlb21fdmxpbmUoYWVzKHhpbnRlcmNlcHQgPSBtZWFuKG9yYikpLA0KICAgICAgICAgICAgIGxpbmV0eXBlID0gImRhc2hlZCIsDQogICAgICAgICAgICAgc2l6ZSA9IDEuMikgKw0KICBnZW9tX2hsaW5lKGFlcyh5aW50ZXJjZXB0ID0gbWVhbihkcmIpKSwNCiAgICAgICAgICAgICBsaW5ldHlwZSA9ICJkYXNoZWQiLA0KICAgICAgICAgICAgIHNpemUgPSAxLjIpICsNCiAgZ2dyZXBlbDo6Z2VvbV90ZXh0X3JlcGVsKGFlcyhsYWJlbCA9IHRlYW0pKQ0KDQpgYGANCg0KDQojIyBUZWFtIDMtUG9pbnQgU2NvcmluZw0KDQpgYGB7cn0NCg0KDQp0aHJlZV9wdCA8LSBkZiAlPiUNCiAgbXV0YXRlKA0KICAgIHRocmVlX3ogPSB6X3Njb3JlKHgzcF9wZXJjZW50KSwNCiAgICB0aHJlZV9wdF9wY3QgPSBzY2FsZXM6OnBlcmNlbnQoeDNwX3BlcmNlbnQsIGFjY3VyYWN5ID0gMC4xKQ0KICAgICkgJT4lDQogIGdncGxvdCgNCiAgICBhZXMoDQogICAgICB4ID0gdGhyZWVfeiwNCiAgICAgIHkgPSByZW9yZGVyKHRlYW0sIHRocmVlX3opLA0KICAgICAgbGFiZWwgPSB0aHJlZV9wdF9wY3QNCiAgICAgICkNCiAgICApICsNCiAgZ2VvbV9jb2wod2lkdGggPSAwLjIpICsNCiAgZ2VvbV9wb2ludCgNCiAgICBhZXMoDQogICAgICBzaXplID0geDNwYQ0KICAgICAgKSwNCiAgICBjb2xvciA9ICJncmVlbiIpICsNCiAgZ2VvbV92bGluZSgNCiAgICB4aW50ZXJjZXB0ID0gMCwNCiAgICBzaXplID0gMS4yKSArDQogIHNjYWxlX3hfY29udGludW91cygNCiAgICBicmVha3MgPSBzZXEoLTMsIDMsIDEpLA0KICAgIGxhYmVscyA9IHNlcSgyMCwgODAsIDEwKQ0KICAgICkgKw0KICB0aGVtZSgNCiAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSINCiAgICApICsNCiAgbGFicygNCiAgICB4ID0gIlRocmVlIFBvaW50JSB0LXNjb3JlIiwNCiAgICB5ID0gTlVMTCwNCiAgICB0aXRsZSA9ICIyMDIxLTIwMjIgVGhyZWUgUG9pbnQlIiwNCiAgICBzdWJ0aXRsZSA9ICJEb3QgU2l6ZSA9IDMgUG9pbnQgQXR0ZW1wdHMiDQogICAgKQ0KDQpnZ3Bsb3RseSh0aHJlZV9wdCkNCg0KYGBgDQo=